# python六大数据类型：
# Number
# String
# List
# Tuple
# Set
# Dictionary
# 不可变数据：Number String Tuple
# 可变数据： List Dictionary Set

# Number: 可多变量赋值，如：
a, b = 1, 2
# Number: 除法有两种：/返回一个浮点数， //返回一个整数
# 在混合计算中，会把整型转化成浮点型
# int:整型，不带小数点。bool是整型的子类型。python3没限制大小，所以可以作为long使用。所以python3没有python2中的long
# float：浮点型，由整数部分+小数部分组成。也可用科学计数法表示：
c = 2.5e2  # 2.5x10^2
# complex:复数由实数部分+虚数部分构成。
d = complex(a, b)  # a+bi = 1+ 2i

# String: 字符串
e = 'String'  # 单双引号均可；
e[0]  # 字符串的第一个字符
e[-1]  # 字符串的倒数第一个字符
e[0: -1]  # 从第一个到倒数第二个字符。 ：后面的元素取不到
e[2:]  # 从第三个开始到最后一个字符
f = e + " and Another String"  # 用+可以链接字符串
g = e*2  # 可以用*重复字符串

# List:列表
# 元素类型可以不同
# 写在方括号中，用逗号隔开
myList = ['a', 'b', 1, 2, [3, 400]]
# List可以索引
myList[0]
myList[1:3]
# List之间可以用+拼接
myList = myList + [7, 8, '9']
# List添加元素：
myList.append('10')
myList.insert(2, 'value')
# List删除元素：
del myList[0]
myList.pop(3 )
# List长度：
len(myList)
# 元素是否在列表中：
3 in myList
# 迭代
for item in myList:
    print(item)

# List中某元素出现的次数：
myList.count('1')
# List中某元素第一次出现的位置：
myList.index(2)
# List反转：
myList.reverse()
# List从小到大排序：
myList.sort()
# List清空：
myList.clear()
# 复制一份List：
# 浅拷贝：
myListCopy = myList.copy()
# 深拷贝：
from copy import deepcopy
myListCopy = deepcopy(myList)

# Tuple:元组
tupl = ()
tuplOne = (50,)
tuplMore = (1,2,3,4)
# 元组内的元素不允许修改
# 元组和元组可以拼接


# Dictionary:字典
# 以键值对存储数据，key唯一
# 键值对用冒号分隔，用花括号整体括起来
Student = {
    'name': 'Will',
    'age': 15,
    'gender': 'male',
}

# Set：无序、不重复的元素序列
mySet = {'apple', 'orange', 'apple', 'orange', 'banana'}
# 作用：去重
